#ifndef UTILIDADES_H
#define UTILIDADES_H

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#include "lista.h"
#include "abb_avl.h"



/* extrae stop words de archivo y las devuelve en avl*/
abb_avl_t* cargar_stop_words();

/* 
 *	Lee una linea de un archivo de texto. Devuelve un string con la linea
 *	El usuario debe encargarse de liberar la memoria ocupada por el string devuelto.
 */
char *leer_linea(FILE* archivo);

char *leer_hasta(FILE* archivo, char separador);

/* 
 * Separa la cadena recibida a partir de los caracteres indicados.
 * Devuelve una lista de terminos, con un NULL en la ultima posicion
 * de la lista, para indicar el fin de la lista de terminos. No se
 * encarga de liberar la memoria de la cadena recibida.
 */
lista_t* separar_cadena_en_terminos(char* cadena, int nro_de_palabras_por_termino,abb_avl_t* stop_words);

/*
 * Borra la cadena
 */
void cadena_destruir(char* cadena);


/*
 *
 * Lee N bytes (chars) del archivo. Luego, sigue leyendo hasta encontrar on EOL.
 * 
 */

char* leer_bloque_string_de_archivo(FILE* archivo, int N);

#endif // UTILIDADES_H
